// \u4e00-\u9fa5] 中文验证规则

Page({
  data: {
    idcardFrontUrl: '', // 正面照图片地址
    idcardBackUrl: '', // 背面照图片地址
    name: '张三',
    mobile: '16756785678',
    gender: 1, // 性别  1男  0女
  },

  async uploadPicture(ev) {
    console.log(ev.mark.type) // idcardFrontUrl  idcardBackUrl

    // wx.chooseMedia  选择图片或视频
    const res = await wx.chooseMedia({
      count: 1, // 最多选择1张图片
      mediaType: ['image'], // 只选择图片
      sizeType: ['compressed'], // 压缩后的图片
    }) // 回调函数  success(res){}      .then((res) => {})       await  async
    console.log(res.tempFiles[0].tempFilePath)

    // wx.uploadFile

    // 不是用的wx.http上传   用的原生api
    wx.uploadFile({
      url: 'https://live-api.itheima.net/upload',
      filePath: res.tempFiles[0].tempFilePath,
      name: 'file',
      header: {
        // 'Content-Type': 'multipart/form-data',
        Authorization: getApp().token,
      },
      success: (res) => {
        // console.log(res)
        const data = JSON.parse(res.data)
        console.log(data)

        if (data.code !== 10000) return wx.utils.toast('上传图片失败!')

        // 上传成功  把图片地址赋值给data中的变量
        this.setData({
          // 动态设置键名  把图片地址赋值给data中的变量
          [ev.mark.type]: data.data.url,
        })
      },
    })
  },

  // 验证手机号格式
  verifyMobile() {
    // 宽松的验证规则
    const reg = /^[1][3-8][0-9]{9}$/
    // 正则验证（去除两端空格）
    const valid = reg.test(this.data.mobile.trim())
    // 验证结果提示
    if (!valid) wx.utils.toast('请填写正确的手机号码!')
    // 返回验证结果
    return valid
  },

  // 验证姓名格式
  verifyName() {
    // 宽松的验证规则
    const reg = /^[\u4e00-\u9fa5]{2,4}$/
    // 正则验证（去除两端空格）
    const valid = reg.test(this.data.name.trim())
    // 验证结果提示
    if (!valid) wx.utils.toast('请填写正确的姓名!')
    // 返回验证结果
    return valid
  },

  // 验证正面照背面照都不为空
  verifyPictures() {
    const { idcardFrontUrl, idcardBackUrl } = this.data
    if (!idcardFrontUrl || !idcardBackUrl) {
      wx.utils.toast('请上传正面照和背面照!')
      return false
    }
    return true
  },

  // 提交审核
  async submitForm() {
    // 验证手机号和姓名是否符合要求
    if (!this.verifyMobile() || !this.verifyName() || !this.verifyPictures()) return

    // 验证通过  提交审核
    // wx.utils.toast('提交审核成功!')
    // 请求服务器提交审核
    const data = {
      point: this.data.point,
      building: this.data.building,
      room: this.data.room,
      name: this.data.name,
      mobile: this.data.mobile,
      gender: this.data.gender,
      idcardFrontUrl: this.data.idcardFrontUrl,
      idcardBackUrl: this.data.idcardBackUrl,
    }

    if (this.data.id) {
      // 编辑
      data.id = this.data.id
    }
    const res = await wx.http({
      url: '/room',
      method: 'POST',
      data,
    })
    if (res.code !== 10000) return wx.utils.toast('提交审核失败!')
    // wx.utils.toast('提交审核成功!')
    // 跳转到上上上上个页面
    wx.navigateBack({
      delta: this.data.id ? 2 : 4,
    })
  },

  onLoad({ point, building, room, id }) {
    if (id) {
      // 编辑
      // 小程序api
      wx.setNavigationBarTitle({
        title: '修改房屋信息',
      })
      this.getDetail(id)
    } else {
      // 添加
      this.setData({
        point,
        building,
        room,
      })
    }
  },
  // 获取房屋详情
  async getDetail(id) {
    if (!id) return
    const res = await wx.http({
      url: `/room/${id}`,
    })
    if (res.code !== 10000) return wx.utils.toast('获取房屋详情失败!')
    // 把详情赋值给data
    this.setData(res.data)
  },
  goList() {
    wx.reLaunch({
      url: '/house_pkg/pages/list/index',
    })
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark?.type
    this.setData({ [type]: '' })
  },
})
